package cn.kgc.springmvc.day01.servlet;

import cn.kgc.springmvc.day01.entity.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author 课工场
 * @date 2024/7/18
 * @description 用户列表的请求的处理类
 *
 * 传统的开发方式 在控制层编写时存在的不足:
 *    1.  每个模块为了实现不同的业务操作,需要编写多个servlet    =>  BaseServlet  反射  三种
 *    2.  参数的接收繁琐  参数的类型单一 String
 *    3.  页面的跳转存在耦合
 *         路径耦合    模板引擎耦合
 * <p>
 * 第一种:
 * /user/list  自动调用 service    get
 * /user/add        post
 * /user/update     put
 * /user/delete     delete     restful
 *
 * <p>
 * 第二种:
 * /user?method=list    用户列表
 * /user?method=add      添加用户
 * /user?method=update   更新用户
 * /user?method=delete   删除用户
 *
 * 第三种:
 *   反射   BaseServlet
 *
 * 以上分析的问题 在springmvc框架中均得到了解决
 */
@WebServlet("/user")
public class UserServlet extends BaseServlet {


    // 添加用户
    protected void addUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //  1. 获取请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String age = req.getParameter("age");


        // 2. 数据封装
        User user = new User();
        user.setPassword(password);
        user.setUsername(username);
        user.setAge(Integer.valueOf(age));

        // TODO 3.调用业务层实现用户数据添加    true  false


        // 4. 根据业务层的返回数据 实现请求的响应     user.jsp
        req.setAttribute("message","用户信息添加成功");
        req.getRequestDispatcher("/user.jsp").forward(req,resp);


    }

    // 更新用户
    protected void updateUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("----------updateUser-------------");
    }

    // 删除用户
    protected void deleteUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("----------deleteUser-------------");
    }

    // 用户列表
    protected void userList(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("----------userList-------------");
    }

}
